ListTasksController   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 21
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 1
eloc 20
dl 0
loc 21
c 0
b 0
f 0
rs 10

1 Function

Rating   Name   Duplication   Size   Complexity  
A get 0 12 1
1
import {
2
  Controller,
3
  Inject,
4
  UseGuards,
5
  Get,
6
  Query,
7
  Render
8
} from '@nestjs/common';
9
import { IQueryBus } from 'src/Application/IQueryBus';
10
import { GetTasksQuery } from 'src/Application/Task/Query/GetTasksQuery';
11
import { PaginationDTO } from 'src/Infrastructure/Common/DTO/PaginationDTO';
12
import { IsAuthenticatedGuard } from 'src/Infrastructure/HumanResource/User/Security/IsAuthenticatedGuard';
13
import { WithName } from 'src/Infrastructure/Common/ExtendedRouting/WithName';
14
import { Pagination } from 'src/Application/Common/Pagination';
15
import { TaskView } from 'src/Application/Task/View/TaskView';
16
import { TaskTableFactory } from '../Table/TaskTableFactory';
17
18
@Controller('app/tasks')
19
@UseGuards(IsAuthenticatedGuard)
20
export class ListTasksController {
21
  constructor(
22
    @Inject('IQueryBus')
23
    private readonly queryBus: IQueryBus,
24
    private readonly tableFactory: TaskTableFactory
25
  ) {}
26
27
  @Get()
28
  @WithName('crm_tasks_list')
29
  @Render('pages/tasks/list.njk')
30
  public async get(@Query() paginationDto: PaginationDTO) {
31
    const pagination: Pagination<TaskView> = await this.queryBus.execute(
32
      new GetTasksQuery(paginationDto.page)
33
    );
34
35
    const table = this.tableFactory.create(pagination.items);
36
37
    return { table, pagination, currentPage: paginationDto.page };
38
  }
39
}
40